﻿/*
=============================================================================
Author:魏宝辉通过CodeSmithe生成
CreatedTime:2012-8-14
Description:DinnerTableList.aspx.cs页面代码
=============================================================================	
*/

using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class DinnerTableList : System.Web.UI.Page
{

    string TableName = "DinnerTableList";//表名
    static string SqlWhere = " 1=1 ";//过滤条件
    string GetCountSql = "select count(id)  from DinnerTableList where " + SqlWhere;
    string SqlTable = "select *  from DinnerTableList where " + SqlWhere + "  order by id desc ";
    string ReturnPage = "DinnerTableList.aspx";
    FTchina.SearchQuery.QueryModel qm = new FTchina.SearchQuery.QueryModel();//实例化模型

 

    protected void Page_Load(object sender, EventArgs e)
    {
        

        FTchina.basic.CheckAdmin(this);
        FTchina.basic.ChkPoewr(this, FTchina.Api.htmlpath.GetCurrentPagePath());
        if (!IsPostBack)
        {
            string act = FTchina.basic.FilterSQL(Request["act"]);
            switch (act)
            {
                case "mod":
                    {
                        btnDinnerTableListOk.Text = "确定修改";
                        txbid.Enabled = false;
                        DisplayData();
                        plop.Visible = true;
                        break;
                    }
                case "del":
                    {
                        DeleteData();
                        break;
                    }
                case "add":
                    {
                        txbid.Text = "0";
                        txbid.Visible = false;
                        plop.Visible = true;//添加修改的表单可以看见
                        break;
                    }
                default:
                    {
                        txbid.Text = "0";
                        txbid.Visible = false;
                        plop.Visible = false;//添加修改的表单看不见
                        break;
                    }

            }

            if (qm.WorkPage != ReturnPage)
            {
                qm.TableName = TableName;
                qm.GetCountSql = GetCountSql;
                qm.GetTableSql = SqlTable;
                qm.ReturnPage = ReturnPage;
                qm.SqlWhere = SqlWhere;
                qm.WorkPage = ReturnPage;

            }

            bindData(qm);
            BindAreaList();
        }
    }

    /// <summary>
    /// 为了实现<thead> <TH>and <tbody>，满足点击表头排序功能
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
   public void gvList_PreRender(object sender, EventArgs e)
    {
        if (gvList.Rows.Count > 0)
        { 
            // 使用<TH>替换<TD> 
            gvList.UseAccessibleHeader = true;
            //This will add the <thead> and <tbody> elements 
            //HeaderRow将被<thead>包裹，数据行将被<tbody>包裹 
            gvList.HeaderRow.TableSection = TableRowSection.TableHeader;
            // FooterRow将被<tfoot>包裹 
            gvList.FooterRow.TableSection = TableRowSection.TableFooter;
        }
    }


    protected void BindAreaList()
    {
        string sql = "select * from AreaList where type='floor' order by id desc";
        ddlAreaList.DataSource = FTchina.shujuku.GetDataTable(sql);
        ddlAreaList.DataTextField = "AreaName";
        ddlAreaList.DataValueField = "AreaName";
        ddlAreaList.DataBind();


    }



    private void DeleteData()
    {
        FTchina.UImsg.PageRender(FTchina.BLL.DinnerTableListManager.DeleteDinnerTableListByid(Convert.ToInt32(FTchina.basic.FilterSQL(Request["id"]))) > 0, HttpContext.Current.Request.Path.ToString());
    }
    private void DisplayData()
    {
        FTchina.Models.DinnerTableList mDinnerTableList = FTchina.BLL.DinnerTableListManager.GetDinnerTableListByid(Convert.ToInt32(FTchina.basic.FilterSQL(Request["id"])));

        txbid.Text = mDinnerTableList.Id.ToString();

        txbdiningTableName.Text = mDinnerTableList.DiningTableName.ToString();

        txbpcount.Text = mDinnerTableList.Pcount.ToString();

        txbzhongcount.Text = mDinnerTableList.Zhongcount.ToString();
        txbwancount.Text = mDinnerTableList.Wancount.ToString();

        txbzhongCustomerID.Text = mDinnerTableList.ZhongCustomerID.ToString();

        txbzhongDate.Text = mDinnerTableList.ZhongDate.ToString();

        txbwanCustomerID.Text = mDinnerTableList.WanCustomerID.ToString();

        txbwanDate.Text = mDinnerTableList.WanDate.ToString();
        ddlAreaList.SelectedIndex = ddlAreaList.Items.IndexOf(ddlAreaList.Items.FindByValue(mDinnerTableList.AreaName));
    }

    private void DataModifiy()
    {
        FTchina.Models.DinnerTableList mDinnerTableList = new FTchina.Models.DinnerTableList();

        mDinnerTableList.Id = Convert.ToInt32(FTchina.basic.FilterSQL(txbid.Text));

        mDinnerTableList.DiningTableName = FTchina.basic.FilterSQL(txbdiningTableName.Text);
        if (mDinnerTableList.DiningTableName.Trim() == "")
        {
            FTchina.JS.Alert("请输入名称");
            return;
        }
        if (txbpcount.Text.ToString().Trim() == "")
        {
            FTchina.JS.Alert("请输入容纳人数");
            return;
        }
        mDinnerTableList.Pcount = Convert.ToInt32(FTchina.basic.FilterSQL(txbpcount.Text));

        mDinnerTableList.Zhongcount = FTchina.basic.FilterSQL(this.txbzhongcount.Text);
        mDinnerTableList.Wancount = FTchina.basic.FilterSQL(this.txbwancount.Text);
        mDinnerTableList.ZhongCustomerID = FTchina.basic.FilterSQL(txbzhongCustomerID.Text);

        mDinnerTableList.ZhongDate = Convert.ToDateTime(FTchina.basic.FilterSQL(txbzhongDate.Text));
        mDinnerTableList.WanCustomerID = FTchina.basic.FilterSQL(txbwanCustomerID.Text);
        mDinnerTableList.WanDate = Convert.ToDateTime(FTchina.basic.FilterSQL(txbwanDate.Text));

        mDinnerTableList.AreaName = ddlAreaList.SelectedValue;
        FTchina.UImsg.PageRender(FTchina.BLL.DinnerTableListManager.ModifyDinnerTableListByid(mDinnerTableList) > 0);

    }
    private void DataAdd()
    {
        FTchina.Models.DinnerTableList mDinnerTableList = new FTchina.Models.DinnerTableList();

        mDinnerTableList.Id = Convert.ToInt32(FTchina.basic.FilterSQL(txbid.Text));

        mDinnerTableList.DiningTableName = FTchina.basic.FilterSQL(txbdiningTableName.Text);
        if (mDinnerTableList.DiningTableName.Trim() == "")
        {
            FTchina.JS.Alert("请输入名称");
            return;
        }
        if (txbpcount.Text.ToString().Trim() == "")
        {
            FTchina.JS.Alert("请输入容纳人数");
            return;
        }
        mDinnerTableList.Pcount = Convert.ToInt32(FTchina.basic.FilterSQL(txbpcount.Text));


        mDinnerTableList.Zhongcount = FTchina.basic.FilterSQL(this.txbzhongcount.Text);
        mDinnerTableList.Wancount = FTchina.basic.FilterSQL(this.txbwancount.Text);
        mDinnerTableList.ZhongCustomerID = FTchina.basic.FilterSQL(txbzhongCustomerID.Text);

        mDinnerTableList.ZhongDate = FTchina.basic.GetStartDate();

        mDinnerTableList.WanCustomerID = FTchina.basic.FilterSQL(txbwanCustomerID.Text);

        mDinnerTableList.WanDate = FTchina.basic.GetStartDate();
        mDinnerTableList.AreaName = ddlAreaList.SelectedValue;
        FTchina.UImsg.PageRender(FTchina.BLL.DinnerTableListManager.AddDinnerTableList(mDinnerTableList) > 0);
    }


    protected void btnDinnerTableListOk_Click(object sender, EventArgs e)
    {
        if (btnDinnerTableListOk.Text == "确定修改") DataModifiy();
        else DataAdd();
    }


    #region gvList显示

    private void bindData(FTchina.SearchQuery.QueryModel qm)
    {

        int pCurrentPage = (FTchina.basic.SafeRequest(Request["page"]).Length > 0) ? Convert.ToInt32(FTchina.basic.SafeRequest(Request["page"])) : 1;
        int pageSize = 15;//每页的数据
        int AllCount = Convert.ToInt32(FTchina.shujuku.GetDataTable(qm.GetCountSql).Rows[0][0].ToString());//数据总条目数
        litpager.Text = FTchina.Api.Pager.GetPagerWithPageName(qm.GetTableSql, AllCount, pCurrentPage, pageSize, qm.ReturnPage);
        gvList.DataSource = FTchina.shujuku.ShowForPage(qm.TableName, qm.SqlWhere, pCurrentPage, pageSize);
        gvList.DataBind();

    }
    #endregion





    #region GridView等控件导出到Excel
    protected void btnexcel_Click(object sender, EventArgs e)
    {
        //将分页去除
        gvList.Width = Unit.Percentage(100);
        gvList.AutoGenerateColumns = false;
        gvList.AllowPaging = false;
        string GetDateSql = string.Format(SqlTable, TableName);
        DataSet ds = FTchina.shujuku.GetDataSet(GetDateSql);
        gvList.DataSource = ds;
        gvList.DataBind();

        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter writer = new System.Web.UI.HtmlTextWriter(stringWrite);
        gvList.RenderControl(writer);

        FTchina.Api.ToExcel.HtmlTableToExcel(stringWrite.ToString());
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        // 覆盖VerifyRenderingInServerForm方法，非常重要，否则系统会报错
        //base.VerifyRenderingInServerForm(control);
    }
    #endregion


}






